package net.siufung.market.base.tenant.api;

import net.siufung.core.model.enums.DeletedEnum;
import net.siufung.market.base.tenant.api.dto.TenantUserCreateDto;
import net.siufung.market.base.tenant.api.dto.TenantUserUpdateDto;

import java.io.Serializable;

/**
 * @author 陈建峰
 * @date 2022/10/11 2:06 下午
 * @since V1.0.0
 */
public interface ITenantUserApi {

    /**
     * 验证当前手机号是否存在
     * @param phone 手机号
     * @return true/false
     */
    Boolean existUserByTenantPhone(String phone);

    /**
     * 通过租户创建用户
     * @param tenantUserCreateDto 租户用户创建实体
     * @return TenantUserCreateDto
     */
    TenantUserCreateDto createUserByTenant(TenantUserCreateDto tenantUserCreateDto);

    /**
     * 通过租户更新用户
     * @param tenantUserUpdateDto 租户用户更新实体
     */
    void updateUserByTenant(TenantUserUpdateDto tenantUserUpdateDto);

    /**
     * 通过租户Id更新租户状态
     * @param id  租户ID
     * @param deletedEnum 状态
     */
    void updateUserStatusById(Serializable id, DeletedEnum deletedEnum);

    /**
     * 通过租户移除租户ID
     * @param id 租户ID
     */
    void removeUserListById(Serializable id);

}
